Field of the Invention
The present invention relates to an information processing apparatus capable of performing hibernation, and a control method for the information processing apparatus.
Description of the Related Art
In recent years, hibernation which reduces the power consumption of an information processing apparatus in a standby state is attracting attention. Hibernation is a function for performing suspend-resume processing of a system. In a status in which the system of an information processing apparatus runs, for example, information stored in a memory, the register of a microprocessor, and a device such as a peripheral is saved in a non-volatile storage such as a hard disk. The saved information is called a “hibernation image”. After saving the information, the information processing apparatus is powered off. When the information processing apparatus is powered on next time, the hibernation image saved in the non-volatile storage is loaded to return the information of the memory, register, and peripheral, thereby returning the system to the same status as that before the information processing apparatus is powered off. A boot of the system by hibernation will be referred to as a “hibernation boot” hereinafter. Hibernation may also be used for the purpose of shortening the start-up time of the system.
Hibernation boot methods are roughly classified into the following two kinds of methods. That is, the hibernation boot methods are classified into a method of performing a hibernation boot by a basic I/O system (BIOS) function or boot loader function, and a method of performing a hibernation boot by the kernel function of an operating system (OS).
In a hibernation boot by the kernel function, after kernel initialization, the status of the system before power-off is restored by loading the hibernation image stored in the non-volatile storage. A hibernation boot by the kernel function has versatility superior to a hibernation boot by the BIOS function since a peripheral is initialized by executing a normal boot sequence.
However, a hibernation boot by the kernel function requires the processing time to execute a boot sequence, thereby prolonging the start-up time, as compared with a hibernation boot by the BIOS function or boot loader function.
For recent information processing apparatuses, a multicore system using a multicore processor formed from a plurality of cores or a multiprocessor system including a plurality of processors is used. In the multicore processor system, a core initialized by a BIOS or a unified extensible firmware interface (UEFI) will be referred to as a “boot core” hereinafter, and other cores will be referred to as “slave cores” hereinafter. There is proposed a method of attempting to shorten the start-up time by executing a program using the slave cores at the time of a system boot in the multicore processor system.
However, the boot method using the slave cores of the multicore processor system is limited in terms of the parallelism of an initialization unit when the number of cores becomes large to some extent, thereby limiting shortening of the start-up time. Furthermore, since it takes time to initialize the slave cores themselves, it becomes more difficult to shorten the start-up time as the number of cores increases.